<?php

namespace App\Models;

class Node extends Base
{
    //将虚拟字段追加到数据对象列表里去
    protected $appends = ['menu'];
    //访问器
    public function getMenuAttribute()
    {
        return $this->is_menu?' <a class="layui-btn layui-btn-warm layui-btn-xs" >是</a>':' <a class="layui-btn layui-btn-disabled layui-btn-xs" >否</a>';
    }
    //获取权限节点 层级关系
    public  function getAllLevel(){
        return $this->treelevel(self::all()->toArray());
    }
    //获取权限节点中 菜单的分类
    /**
     * 用户拥有权限
     * $allow_node 可以拥有的权限
     * @return
     */
    public  function getMenuData($allow_node){
        //查询是否是菜单的 权限
        $query = self::where('is_menu','1');
        //判断是否是超级管理员 因为超级管理员是true
        if(is_array($allow_node)){
            //wherein 根据id 查询对应的 权限名称
            $query->whereIn('id',array_keys($allow_node));
        }
        //取出符合条件的数据
        $menuData = $query->select('id', 'name', 'pid','route_name')->get()->toArray();
        //调用递归 层
        return $this->getMenuTree($menuData);
    }
}
